﻿using System;
using System.Runtime.Serialization;

namespace Sustainalytics.Governance.BusinessLogic.Exceptions
{
    public class GovernanceProfileNotInUniversesException : Exception
    {

    }
    public class GovernanceProfileNotFoundException : Exception
    {

    }

    [Serializable]
    public class CorporateDataGovernanceNotFoundException : Exception
    {
        //
        // For guidelines regarding the creation of new exception types, see
        //    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconerrorraisinghandlingguidelines.asp
        // and
        //    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp07192001.asp
        //

        public CorporateDataGovernanceNotFoundException()
        {
        }

        public CorporateDataGovernanceNotFoundException(string message) : base(message)
        {
        }

        public CorporateDataGovernanceNotFoundException(string message, Exception inner) : base(message, inner)
        {
        }

        protected CorporateDataGovernanceNotFoundException(
            SerializationInfo info,
            StreamingContext context) : base(info, context)
        {
        }
    }

    [Serializable]
    public class GovernanceResearchFlagInvalidException : Exception
    {
        //
        // For guidelines regarding the creation of new exception types, see
        //    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconerrorraisinghandlingguidelines.asp
        // and
        //    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp07192001.asp
        //

        public GovernanceResearchFlagInvalidException()
        {
        }

        public GovernanceResearchFlagInvalidException(string message) : base(message)
        {
        }

        public GovernanceResearchFlagInvalidException(string message, Exception inner) : base(message, inner)
        {
        }

        protected GovernanceResearchFlagInvalidException(
            SerializationInfo info,
            StreamingContext context) : base(info, context)
        {
        }
    }

    [Serializable]
    public class GovernanceResearchStateInProgressException : Exception
    {
        public GovernanceResearchStateInProgressException()
        {                
        }

        public GovernanceResearchStateInProgressException(string message) : base(message)
        {
        }

        public GovernanceResearchStateInProgressException(string message, Exception innerException) : base(message, innerException)
        {
        }

        protected GovernanceResearchStateInProgressException(SerializationInfo info, StreamingContext context) : base(info, context)
        {
        }
    }

    [Serializable]
    public class GovernanceResearchStateFrameworkNotApplicable : Exception
    {
        public GovernanceResearchStateFrameworkNotApplicable(string message) : base(message)
        {
        }
    }

}
